package com.example.firststory;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageButton;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

public class ListaImagenes extends Activity {

	RelativeLayout layoutListaImagenes;

	GridView gvImagenes;

	Adaptador adaptadorImagenes;

	Map<String, List<String>> mapaImagenes;

	ImageButton atras;

	TextView paginaPor, paginaDe;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_lista_imagenes);
		try {
			getReferencias();

			for (String key : mapaImagenes.keySet()) {

				getImagenes(key);

			}

			gvImagenes.setAdapter(adaptadorImagenes);

			setListenerGrid();
		} catch (Exception e) {
			Log.e("Error", e.getMessage());
		}
	}

	private void getReferencias() {

		atras = (ImageButton) findViewById(R.id.btnAtrasListaImagenes);

		paginaPor = (TextView) findViewById(R.id.tvPagListaImagenesPor);
		paginaDe = (TextView) findViewById(R.id.tvPagListaImagenesDe);

		gvImagenes = (GridView) findViewById(R.id.gvImagenes);

		adaptadorImagenes = new Adaptador(this);

		cargarImagenes();

	}

	private void getImagenes(String direccion) {

		for (String imagenes : mapaImagenes.get(direccion)) {

			adaptadorImagenes.add(imagenes);

		}

	}

	private void setListenerGrid() {

//		gvImagenes.setOnItemClickListener(new OnItemClickListener() {
//
//			@Override
//			public void onItemClick(AdapterView<?> arg0, View arg1, int pos,
//					long arg3) {
//
//				// String nombre = adaptadorImagenes.getItem(pos).toString();
//
//				Log.e("Mensaje", gvImagenes.getAdapter().getItem(pos)
//						.toString());
//
//			}
//		});

	}

	private void cargarImagenes() {

		List<String> pruebaImagenes = new ArrayList<String>();
		List<String> pruebaFolders = new ArrayList<String>();

		mapaImagenes = new HashMap<String, List<String>>();

		pruebaImagenes = Util.getAllShownImagesPath(this);

		pruebaFolders = Util.getAllFoldersWithImages(this);

		for (int carpetas = 0; carpetas < pruebaFolders.size(); carpetas++) {

			String carpeta = pruebaFolders.get(carpetas);
			List<String> imagenesPorCarpeta = new ArrayList<String>();

			for (int imagenes = 0; imagenes < pruebaImagenes.size(); imagenes++) {

				if (pruebaImagenes
						.get(imagenes)
						.substring(0,
								pruebaImagenes.get(imagenes).lastIndexOf("/"))
						.equalsIgnoreCase(carpeta)) {
					imagenesPorCarpeta.add(pruebaImagenes.get(imagenes));
				}
			}
			mapaImagenes.put(carpeta, imagenesPorCarpeta);
		}

	}

}
